package com.zhike.mapper;

import java.util.ArrayList;
import java.util.List;

import com.zhike.model.ContractRview;
import com.zhike.model.LabsFlowA;
import com.zhike.model.LbtNumberType;
import com.zhike.model.Sample;
import com.zhike.model.SceneFlow;
import com.zhike.model.WorkFlowTask;

public interface LaboratoryMapper {
	/**
	 * 合同评审消息详情
	 * @param contractReview
	 * @return
	 */
	ContractRview ContractRviewDetail(ContractRview contractRview);
	/**
	 * 根据id获取项目负责人姓名
	 * @param id
	 * @return
	 */
	String getUserName(String id);
	/**
	 * 根据类型id拿到编号格式
	 * @param integer
	 * @return
	 */
	LbtNumberType numberGet(Integer integer);
	/**
	 * 编号存进数据库
	 * @param lbtNumberType
	 * @return 
	 */
	void numberInsert(LbtNumberType lbtNumberType);
	/**
	 * 根据id查询列表
	 * @param lbtNumberType
	 * @return
	 */
	List<LbtNumberType> detectionStructure(LbtNumberType lbtNumberType);
	/**
	 * 提交部门审核
	 * @param contractRview
	 */
	void reviewSubmit(ContractRview contractRview);
	/**
	 * 领导评审提交
	 * @param contractRview
	 */
	void leadTheReview(ContractRview contractRview);
	/**
	 * 返回json
	 * @param string
	 * @return
	 */
	String getreturnJson(String string);
	/**
	 * 部门评审事项插入代办列表数据库
	 * @param contractRview
	 */
	void backlogInsert(ContractRview contractRview);
	/**
	 * 修改待办事项的状态
	 * @param contractRview
	 */
	void backlogStatus(ContractRview contractRview);
	/**
	 * 找到发送人id
	 * @param contractRview
	 * @return
	 */
	String sendIDSearch(ContractRview contractRview);
	/**
	 * 派工单详情
	 * @param sceneFlow
	 * @return
	 */
	SceneFlow SceneFlowDetail(SceneFlow sceneFlow);
	/**
	 * 通过id查发送人名字
	 * @param fsr
	 * @return
	 */
	String getNameById(String fsr);
	/**
	 * 通过id获取消息详情
	 * @param workFlowTask
	 * @return
	 */
	WorkFlowTask getMessageDetail(WorkFlowTask workFlowTask);
	/**
	 * 接受或者拒绝派工
	 * @param workFlowTask
	 */
	void workOrder(WorkFlowTask workFlowTask);
	/**
	 * 派工的签名同步
	 * @param workFlowTask
	 */
	void workOrderComment(WorkFlowTask workFlowTask);
	/**
	 * 修改审核提交的结果
	 * @param sceneFlow
	 */
	void updateAuditCommit(SceneFlow sceneFlow);
	/**
	 * 修改消息状态我已完成 和完成时间
	 * @param workFlowTask
	 */
	void updateMessageState(WorkFlowTask workFlowTask);
	/**
	 * 插入到消息列表
	 * @param newWork
	 */
	void insertWorkOrder(WorkFlowTask newWork);
	/**
	 * 修改审批的结果
	 * @param sceneFlow
	 */
	void updateapproveCommit(SceneFlow sceneFlow);
	/**
	 * 查询发送人id
	 * @param workFlowTask
	 * @return
	 */
	WorkFlowTask getSenderID(WorkFlowTask workFlowTask);
	/**
	 * 工程列表
	 * @param sceneFlow
	 * @return
	 */
	List<SceneFlow> projectList(SceneFlow sceneFlow);
	/**
	 * 根据派工编号查询详情
	 * @param sceneFlow
	 * @return
	 */
	SceneFlow workorderSearch(SceneFlow sceneFlow);
	/**
	 * 试验修改
	 * @param sceneFlow
	 */
	void testAudit(SceneFlow sceneFlow);
	/**
	 * 添加样品信息
	 * @param sample
	 */
	void samplesMessAdd(Sample sample);
	/**
	 * 样品列表
	 * @param sample
	 * @return
	 */
	List<Sample> samplesMessList(Sample sample);
	/**
	 * 返回委托 收样详情
	 * @param labsFlowA
	 * @return
	 */
	LabsFlowA entrustDetail(LabsFlowA labsFlowA);
	/**
	 * 修改打开时间
	 * @param workFlowTask
	 */
	void setOpenTime(WorkFlowTask workFlowTask);
	/**
	 * 收样完成后 数据库操作
	 * @param labsFlowA
	 */
	void entrustFinish(LabsFlowA labsFlowA);
	/**
	 * 发起人的信息
	 * @param workFlowTask
	 * @return
	 */
	WorkFlowTask getFQRMess(WorkFlowTask workFlowTask);
	/**
	 * 试验室收样：选择工程 项目列表
	 * @param labsFlowA
	 * @return
	 */
	List<LabsFlowA> samplesProjetList(LabsFlowA labsFlowA);
	/**
	 * 查询工程详情
	 * @param labsFlowA
	 * @return
	 */
	LabsFlowA samplesProjetSearch(LabsFlowA labsFlowA);
	/**
	 * 重新修改委托信息
	 * @param labsFlowA
	 */
	void updateEntrustReceived(LabsFlowA labsFlowA);
	/**
	 * 根据组id查询是否完成
	 * @param groupID
	 * @return
	 */
	WorkFlowTask entrustIsFinish(String groupID);
	/**
	 * 实验室 任务指派 详情 工程列表
	 * @param labsFlowA
	 * @return
	 */
	List<LabsFlowA> projetDispatching(LabsFlowA labsFlowA);
	/**
	 * 根据工程名称查询工程详情
	 * @param labsFlowA
	 * @return
	 */
	LabsFlowA projetDispatchingSearch(LabsFlowA labsFlowA);
	/**
	 * 检测任务通知书 修改
	 * @param labsFlowA
	 */
	void detectionTaskInform(LabsFlowA labsFlowA);
	/**
	 * 项目工程详情
	 * @param labsFlowA
	 * @return
	 */
	LabsFlowA detectionTaskDetail(LabsFlowA labsFlowA);
	/**
	 * 试验室报告详情
	 * @param labsFlowA
	 * @return
	 */
	LabsFlowA LabReportDetail(LabsFlowA labsFlowA);
	/**
	 * 改变审核修改提交的表数据
	 * @param labsFlowA
	 */
	void LabReportSubmit(LabsFlowA labsFlowA);
	/**
	 * 改变修改审批提交的表数据
	 * @param labsFlowA
	 */
	void approvalSubmit(LabsFlowA labsFlowA);
	/**
	 * 试验修改提交的表数据
	 * @param labsFlowA
	 */
	void testTomModify(LabsFlowA labsFlowA);
	/**
	 * 出报告
	 * @param labsFlowA
	 */
	void LabReportSubmit1(LabsFlowA labsFlowA);
	/*
	 *
	 *试验修改的工程列表
	 */
	List<LabsFlowA> testTomModifyList(LabsFlowA labsFlowA);



}
